{{tag>matériel joystick tutoriel}}

====== Dualshock : utiliser sa manette de PlayStation 3 ou 4 sur Ubuntu ======
Cette page concerne l'utilisation des manettes Sixaxis et Dualshock 3 pour PlayStation 3 et Dualshock 4 pour PlayStation 4 sur Ubuntu.

<note tip>De nombreux jeux ne peuvent être joués qu'à la manette de Xbox 360 (notamment ceux disponible sur [[:steam|Steam]]), ainsi les guides ci-dessous se concentrent sur l'utilisation de la Dualshock/Sixaxis comme une manette de Xbox 360.</note>

===== Sixaxis et Dualshock 3 =====
<note>Son fonctionnement a été testé sur Ubuntu 12.10 et supérieurs.</note>

==== Utilisation en USB ====
  - [[:tutoriel:comment_installer_un_paquet|Installer le paquet]] **[[apt>xboxdrv]]**
  - Brancher la manette en USB
  - Appuyer sur le bouton PlayStation de celle-ci
  - Ouvrir un terminal et rentrer : <code>sudo xboxdrv --detach-kernel-driver</code>

Vous devriez alors voir les états de chaque touche et joystick s'afficher dans le terminal. Vous pouvez utiliser l'option <nowiki>--silent</nowiki> pour les masquer.

==== Utilisation en Bluetooth ====
<note>Pour le moment aucune méthode simple d'utilisation ne permet l'utilisation des Sixaxis et Dualshock 3 en Bluetooth tout en émulant une manette de Xbox 360.</note>

===== Dualshock 4 =====

Un driver pour la Dualshock 4 est [[https://github.com/chrippa/ds4drv|en cours de développement par la communauté]]. Ce driver supporte actuellement plusieurs manettes, le changement de couleur de la LED (en USB uniquement), l'utilisation du touchpad comme une souris et ne supporte pas encore les vibrations. 

<note>Son fonctionnement n'a été testé que sur Ubuntu 13.10 et 14.04 LTS avec la clé Bluetooth ASUS USB-BT211.</note>

==== Pré-requis ==== 
  - [[:python|Python]] 2.7 ou 3.3 et supérieurs
  - Les paquets **[[apt>python-setuptools]]** et **[[apt>bluez-utils]]**

==== Installation ====
  - [[:tutoriel:comment_installer_un_paquet|Installer les paquets]] **[[apt>python-pip]]**, **[[apt>python-pyudev]]** et **[[apt>python-evdev]]**
  - Installez ds4drv avec pip : <code>sudo pip install ds4drv</code>
  - Téléchargez ce fichier de règles [[[:udev|udev]] : <code>sudo wget -O /etc/udev/rules.d/50-ds4drv.rules https://raw.githubusercontent.com/chrippa/ds4drv/master/udev/50-ds4drv.rules</code>
  - Rechargez les règles udev : <code>sudo udevadm control --reload-rules
sudo udevadm trigger</code>

==== Utilisation en USB ====
  - Branchez votre Dualshock 4 en USB
  - Entrez la commande suivante : <code>ds4drv --hidraw --emulate-xboxdrv</code>

==== Utilisation en Bluetooth ====
<note important>[[https://github.com/chrippa/ds4drv/wiki/Bluetooth%20dongle%20compatibility|Les cartes et clés Bluetooth 2.0 posent problème]], préférez l'utilisation d'un équipement compatible Bluetooth 2.1 ou supérieur.</note>
  - Connectez ou activez votre équipement Bluetooth
  - Maintenez les boutons PlayStation et Share de votre Dualshock 4 appuyés jusqu'à ce que la LED clignote rapidement en blanc
  - Entrez la commande suivante : <code>ds4drv --emulate-xboxdrv</code>

<note tip>Si jamais cela ne venait pas à fonctionner, connectez votre Dualshock 4 en USB (tout en gardant l'équipement Bluetooth activé) et utilisez la commande suivante : <code>ds4drv --hidraw --emulate-xboxdrv</code></note>

<note>Il se peut que votre Dualshock 4 ne s'éteigne pas après avoir été débranchée. Dans ce cas, appuyez sur le bouton PlayStation jusqu'à ce que la LED s'éteigne.</note>

==== Changer la couleur de la barre lumineuse ====
Vous pouvez changer la couleur de la barre lumineuse de votre Dualshock 4 avec le paramètre **--led**, suivi du code hexadécimal de la couleur voulue :
<code>ds4drv --emulate-xboxdrv --led ff0000</code>
Par exemple, **ff0000** l'allumera en rouge, **00ff00** en vert, **0000ff** en bleu, **ffffff** en blanc et **000000** l'éteindra.

==== Connecter plusieurs manettes ====
Il se peut que vous souhaitiez jouer à plusieurs sur le même PC. Pour appairer plusieurs manettes, il suffit d'utiliser le paramètre **--next-controller** suivi des paramètres de la manette supplémentaire.

Par exemple, pour utiliser deux manettes :
  - Connectez ou activez votre équipement Bluetooth
  - Maintenez les boutons PlayStation et Share de vos Dualshock 4 appuyés jusqu'à ce que les LED clignotent rapidement en blanc
  - Entrez la commande suivante : <code>ds4drv --emulate-xboxdrv --led ff0000 --next-controller --emulate-xboxdrv --led 00ff00</code>
Le paramètre **--led** est optionnel, mais permet de distinguer les deux manettes, ce qui est fort pratique.

<note>Théoriquement il est possible de connecter autant de manette que supporté par un jeu. Cependant il est rare qu'un jeu supporte plus de quatre manettes et je n'ai testé qu'avec deux manettes.</note>

==== Erreur Transport endpoint is not connected ====
Il se peut que vous rencontriez l'erreur suivante en voulant utiliser une Dualshock 4 en Bluetooth :
<code>[info][bluetooth] Scanning for devices
[info][bluetooth] Found device XX:XX:XX:XX:XX:XX
[error][bluetooth] Unable to connect to detected device: Failed to set operational mode: [Errno 107] Transport endpoint is not connected</code>
Pour régler ce soucis, arrêtez le programme en appuyant sur **Ctrl + Z** ouvrez les paramètres Bluetooth et supprimez les entrées nommées "Wireless Controller".

Ceci devrait régler le problème et vous pouvez essayer à nouveau d'utiliser votre ou vos manettes.


